package com.tedu.element.utils;

import com.tedu.element.Direction;
import com.tedu.element.bubble.Explosion;

/**
 * 游戏通用工具类
 * <p>提供一系列静态方法，用于处理游戏中常见的、可复用的逻辑
 */
public final class GameUtils {
    // 私有化构造函数，防止外部实例化
    private GameUtils() {
    }

    /**
     * 根据方向获取对应的水柱爆炸类型
     *
     * @param dir 方向
     * @return 对应的爆炸类型
     */
    public static Explosion.ExplosionType getDirectionalType(Direction dir) {
        switch (dir) {
            case up:
                return Explosion.ExplosionType.UP;
            case down:
                return Explosion.ExplosionType.DOWN;
            case left:
                return Explosion.ExplosionType.LEFT;
            case right:
                return Explosion.ExplosionType.RIGHT;
            default:
                return Explosion.ExplosionType.CENTER; // 默认返回中心
        }
    }

    /**
     * 根据方向获取对应的末端爆炸类型
     *
     * @param dir 方向
     * @return 对应的末端爆炸类型
     */
    public static Explosion.ExplosionType getEndType(Direction dir) {
        switch (dir) {
            case up:
                return Explosion.ExplosionType.UP_END;
            case down:
                return Explosion.ExplosionType.DOWN_END;
            case left:
                return Explosion.ExplosionType.LEFT_END;
            case right:
                return Explosion.ExplosionType.RIGHT_END;
            default:
                return Explosion.ExplosionType.CENTER; // 默认返回中心
        }
    }
}
